/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pojo;

import java.io.Serializable;
import java.util.List;
import javax.persistence.*;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;

/**
 *
 * @author Vanessinha
 */
@Entity
@Table(name = "tb_funcionario")
public class Funcionario implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "fun_codigo")
    private Long funCodigo;
    @Size(max = 255)
    @Column(name = "fun_nome")
    private String funNome;
    @Basic(optional = false)
    @Size(min = 1, max = 255)
    @Column(name = "fun_cpf")
    private String funCpf;
    @Size(max = 255)
    @Column(name = "fun_rg")
    private String funRg;
    @Size(max = 255)
    @Column(name = "fun_fone")
    private String funFone;
    @JoinColumn(name = "fun_cargo", referencedColumnName = "car_codigo")
    @ManyToOne
    private Cargo funCargo;
    @OneToMany(mappedBy = "loccodFuncionario")
    private List<Locacao> locacoes;
    @JoinColumn(name = "fun_estado", referencedColumnName = "EST_CODIGO")
    @ManyToOne
    private Estado funEstado;
    @JoinColumn(name = "fun_cidade", referencedColumnName = "CID_CODIGO")
    @ManyToOne
    private Cidade funCidade;
    @Basic(optional = false)
    @Size(min = 1, max = 255)
    @Column(name = "fun_bairro")
    private String funBairro;

    public Funcionario() {
    }

    public Funcionario(Long funCodigo) {
        this.funCodigo = funCodigo;
    }

    public Long getFunCodigo() {
        return funCodigo;
    }

    public void setFunCodigo(Long funCodigo) {
        this.funCodigo = funCodigo;
    }

    public String getFunNome() {
        return funNome;
    }

    public void setFunNome(String funNome) {
        this.funNome = funNome;
    }

    public Cargo getFunCargo() {
        return funCargo;
    }

    public void setFunCargo(Cargo funCargo) {
        this.funCargo = funCargo;
    }

    public String getFunCpf() {
        return funCpf;
    }

    public void setFunCpf(String funCpf) {
        this.funCpf = funCpf;
    }

    public String getFunFone() {
        return funFone;
    }

    public void setFunFone(String funFone) {
        this.funFone = funFone;
    }

    public String getFunBairro() {
        return funBairro;
    }

    public void setFunBairro(String funBairro) {
        this.funBairro = funBairro;
    }

    public Cidade getFunCidade() {
        return funCidade;
    }

    public void setFunCidade(Cidade funCidade) {
        this.funCidade = funCidade;
    }

    public Estado getFunEstado() {
        return funEstado;
    }

    public void setFunEstado(Estado funEstado) {
        this.funEstado = funEstado;
    }

    public String getFunRg() {
        return funRg;
    }

    public void setFunRg(String funRg) {
        this.funRg = funRg;
    }
    
    

    public List<Locacao> getLocacoes() {
        return locacoes;
    }

    public void setLocacoes(List<Locacao> locacoes) {
        this.locacoes = locacoes;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (funCodigo != null ? funCodigo.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Funcionario)) {
            return false;
        }
        Funcionario other = (Funcionario) object;
        if ((this.funCodigo == null && other.funCodigo != null) || (this.funCodigo != null && !this.funCodigo.equals(other.funCodigo))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return funNome;
    }
}
